package com.battle.service.service.in;

import com.battle.pojo.vo.organization.GetOrganizationDownListVo;
import nirvana.core.domains.vo.PageResult;
import com.battle.pojo.param.user.*;
import com.battle.pojo.vo.user.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;


/**
 * 【描 述】：用户服务
 * 【环 境】：J2SE
 * 【详 细】：
 */
public interface UserService {

    /**
     * 创建用户
     *
     * @param param
     */
    void createUser(CreateUserParam param);

    /**
     * 修改用户
     *
     * @param param
     */
    void editUser(EditUserParam param);

    /**
     * 移除用户
     *
     * @param id
     */
    void removeUser(Long id);
    /**
     * 重置密码
     */
    void resetPassWordUser(Long id);
    /**
     * 启动/禁用用户
     *
     * @param id
     */
    void enabledUser(Long id);

    /**
     * 获取用户详情
     *
     * @param id
     * @return
     */
    GetUserVo getUser(Long id);

    /**
     * 获取用户列表
     *
     * @param param
     * @return
     */
    PageResult<GetUserListVo> getUserList(GetUserListParam param);

    /**
     * 获取用户下拉列表
     *
     * @param param
     * @return
     */
    List<GetUserDownListVo> getUserDownList(GetUserDownListParam param);

    /**
     * 获取当前用户的组织架构信息
     * @return
     */
    List<GetOrganizationDownListVo> getOrganizationByCurrentUserId();

    /**
     * 导入用户
     * @param file
     */
    void importUser(MultipartFile file);

    /**
     * 修改密码
     * @param param
     */
    void updatePassword(UpdatePasswordParam param);
}